﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;

namespace CrmContacto.Contracts.Contracts.Search
{
    [Serializable]
    [DataContract]
    public class CustomerSearchParam
    {
        public CustomerSearchParam()
        {
            Categorias = new List<int>();
            PuntosDeVenta = new List<int>();
            TiposDocumento = new List<int>();
            CumpleDias = new List<int>();
            CumpleMeses = new List<int>();
            CumpleAnios = new List<int>();
            Estados = new List<int>();
            ListasDeDistribucion = new List<int>();
            EstadosEmail = new List<int>();
            Ids = new List<int>();
            OrigenPuntosDeVenta = new List<int>();
            OrigenContacto = new List<int>();
            Vendedores = new List<string>();
            CreadoresDelContacto = new List<string>();
            Provincias = new List<int>();
            TipoRegistroBitacora = new List<int>();
            CodigosProducto = new List<string>();
            AccionesDeMarketingList = new List<int>();

            ConEmail = null;
            ConDocumento = null;
            ConVentas = null;
        }

        [DataMember]
        public int PageSize { get; set; }

        [DataMember]
        public int? TipoPdvDummy { get; set; }

        //[DataMember]
        //public bool SearchSelectAll { get; set; }

        [DataMember]
        public bool? ConEmail { get; set; }

        [DataMember]
        public bool? ConDocumento { get; set; }

        [DataMember]
        public bool? ConVentas { get; set; }

        [DataMember]
        public bool SoloInformacionBasica { get; set; }

        [DataMember]
        public int PageSkip { get; set; }

        [DataMember]
        public string SortingField { get; set; }

        [DataMember]
        public bool SortIsAsc { get; set; }

        [DataMember]
        public List<int> Ids { get; set; }

        [DataMember]
        public bool IncludeRemoved { get; set; }

        [DataMember]
        public int EmpresaId { get; set; }

        [DataMember]
        public List<int> PuntosDeVenta { get; set; }

        [DataMember]
        public List<int> OrigenPuntosDeVenta { get; set; }

        [DataMember]
        public List<int> OrigenContacto { get; set; }

        [DataMember]
        public List<int> TiposDocumento { get; set; }

        [DataMember]
        public string ProductoTemporadaLetra { get; set; }

        [DataMember]
        public string ProductoCodigoColor { get; set; }

        [DataMember]
        public string ProductoCodigoTalle { get; set; }

        [DataMember]
        public decimal? Dni { get; set; }

        [DataMember]
        public string Email { get; set; }

        [DataMember]
        public string Nombre { get; set; }

        [DataMember]
        public string Apellido { get; set; }

        [DataMember]
        public string Telefono { get; set; }

        [DataMember]
        public string NroCredencial { get; set; }

        [DataMember]
        public List<int> CumpleDias { get; set; }

        [DataMember]
        public List<int> CumpleMeses { get; set; }

        [DataMember]
        public List<int> CumpleAnios { get; set; }

        [DataMember]
        public int? NacionalidadId { get; set; }

        [DataMember]
        public List<int> Provincias { get; set; }

        [DataMember]
        public List<int> EstadosEmail { get; set; }

        [DataMember]
        public List<int> Estados { get; set; }

        [DataMember]
        public List<int> ListasDeDistribucion { get; set; }

        [DataMember]
        public List<int> Categorias { get; set; }

        [DataMember]
        public List<int> TipoRegistroBitacora { get; set; }

        [DataMember]
        public List<int> AccionesDeMarketingList { get; set; }

        [DataMember]
        public string Factura { get; set; }

        [DataMember]
        public DateTime? FechaCompraDesde { get; set; }

        [DataMember]
        public DateTime? FechaCompraHasta { get; set; }

        [DataMember]
        public DateTime? FechaCreadoDesde { get; set; }

        [DataMember]
        public DateTime? FechaCreadoHasta { get; set; }

        [DataMember]
        public DateTime? FechaCumpleDesde { get; set; }

        [DataMember]
        public DateTime? FechaCumpleHasta { get; set; }

        [DataMember]
        public int? Sexo { get; set; }

        [DataMember]
        public bool ConComprasEn { get; set; }

        [DataMember]
        public List<string> CodigosProducto { get; set; }

        [DataMember]
        public string ProductoDescripcion { get; set; }

        [DataMember]
        public List<string> Vendedores { get; set; }

        [DataMember]
        public List<string> CreadoresDelContacto { get; set; }
    }
}
